The use of compact optical data disks as a means for storing digital data is well known in the art of computer engineering. Relevant published standards include: ECMA-130 2nd Edition—June 1996, “Data interchange on read-only 120 mm optical data disks (CD-ROM)” and ECMA-168 2nd Edition—December 1994, “Volume and File Structure of Read-Only and Write-Once Compact Disk Media for Information Interchange”
The CD-ROM is characterized by an ability to launch a program that is stored on the CD-ROM upon mounting the CD on the host. This ability is typically supplied by an operating system on the host by means of an “Autorun” feature. In addition, the CD-ROM is a read-only media and the operating system prevents an application from writing data onto the CD-ROM.
These two features caused the developers of flash disk drives, such as the DiskOnKey™ available from M-Systems™, Kefar-Sava, Israel, to emulate the CD-ROM paradigm in removable storage devices.
These two features are important in such devices for the following two reasons: (i) The ability to include, in the flash disk drive, applications that are launched upon mounting is convenient and familiar to the user and facilitates supplying any necessary installation software on the device itself (ii) The lack of “write” command protects the programs and data that are not to be changed from erasure during normal operation of the device.
FIG. 1 shows a prior art removable mass storage device 22 with a non-optical re-writable storage area (“storage area”) 20 that includes a read-only partition (CD ROM partition) 22 and a read-write partition (writable partition) 24. The non-optical re-writable storage area 20 can be implemented by Flash technology.
Generally, the partitioning is done during the manufacturing process of the removable mass storage device. It is convenient to present these partitions to an operating system by means of standard interfaces.
Non-optical re-writable storage area 20 is divided into a read-only partition 22 and a read/write partition 24. A controller 28 provides access to the partitions to a host computing device 34 and applications running on the host by means of standard interfaces: a CD-ROM interface 30 (as described in ECMA-168) and a mass-storage device interface 32. The physical interface to the host is by means of a link. Controller 28 is responsible for translating the standard interfaces presented to the host into the appropriate commands understood by the underlying flash memory.
There is, however, an additional requirement, which is to be able to update the content stored on the emulated CD-ROM. This content is updated using a separate API.
Updating the entire emulated CD-ROM is risky because data can be corrupted during the update. For example, a user can unwittingly remove the device while an update is in progress. In this case, the contents of the emulated CD-ROM are likely to become corrupted. As a result, the CD partition may be unusable, thereby rendering the device as a whole unusable. A second problem in updating is the potential lengthy amount of time required to replace the entire contents of the CD partition.
These two deficiencies do not apply to CDs because CDs cannot be rewritten.
FIG. 2 illustrates a prior art update process of CD-ROM partition 22 within a removable mass storage device 22. This update typically occurs after the manufacturing process is completed. A CD-ROM partition image 42, precedes a writeable partition 44, which together form the total capacity of the storage device. When the CD-ROM partition has to be updated (by a later version or by new content), an application (not shown) creates an updated version of the CD-ROM partition 40 and replaces 46 the old partition 42A by the new partition 40A. Typically, the new partition 40A is larger than the old partition 42, so the writeable partition 48 has to be smaller than the original writeable partition 44. The result is a CD-ROM with an updated partition.
It would be very useful to have a storage device comprising an incrementally and safely updatable CD partition that can be updated many times.